package org.jiuling.request.http.model;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Http请求参数
 * @author 紫灵
 * @date 2024年08月24日 22时20分02秒
 */
public class HttpRequestParam extends HashMap<String,Object> implements Map<String,Object> {

    /**
     * 添加请求参数
     * @param key 键
     * @param value 值
     * @return Http请求基础
     */
    public HttpRequestParam add(String key,Object value){
        return this.add(key,value,false);
    }

    /**
     *添加请求参数
     * @param key 键
     * @param value 值
     * @param isSuperaddition 是否追加参数
     * @return Http请求基础
     */
    public HttpRequestParam add(String key,Object value,boolean isSuperaddition){
        if(isSuperaddition) {
            if (!super.containsKey(key)) {
                super.put(key, value);
            } else {
                Object oldValue = super.get(key);
                // 判断类型是否为List
                if (oldValue instanceof List list) {
                    list.add(value);
                } else {
                    List<Object> newValue = new ArrayList<>();
                    newValue.add(oldValue);
                    newValue.add(value);
                    super.put(key, newValue);
                }
            }
        }else {
            super.put(key, value);
        }
        return this;
    }

}
